package com.towker;

import java.io.File;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

public class JacobTest2 {   
	
	private static boolean  saveOnExit = true;
	/**
	* word文档
	*/
	private static Dispatch doc = null;
	/**
	* word运行程序对象
	*/
	private static ActiveXComponent wordCom;
	/**
	* 所有word文档
	*/
	private static Dispatch documents; 
	// 选定的范围或插入点

    private static Dispatch selection;
    

	
    public static void createANewFileTest() {   
        WordBean wordBean = new WordBean();   
        // word.openWord(true);// 打开 word 程序   
        wordBean.setVisible(true);   
        wordBean.createNewDocument();// 创建一个新文档   
        wordBean.setLocation();// 设置打开后窗口的位置   
        wordBean.insertText("你好");// 向文档中插入字符   
        wordBean.insertJpeg("D:" + File.separator + "a.jpg"); // 插入图片   
        // 如果 ，想保存文件，下面三句   
        // word.saveFileAs("d:\\a.doc");   
        // word.closeDocument();   
        // word.closeWord();   
    }   
    public static void openAnExistsFileTest() {   
        WordBean wordBean = new WordBean();   
     // 获得Selection对象
//        ActiveXComponent wordCom =  new ActiveXComponent("Word.Application");
//    	Dispatch selectDoc = wordCom.getProperty("Selection").toDispatch();
        String str=JacobTest2.class.getResource("JacobTest2.class").getPath(); 
		str=str.substring(1, str.indexOf("WEB-INF/classes"));//从路径字符串中取出工程路径
		String path = str.replaceAll("%", " ");
        wordBean.setVisible(true); // 是否前台打开word 程序，或者后台运行   
        wordBean.openFile(path+"/"+"TestDoc.doc");   
        wordBean.setLocation();   
        wordBean.insertTable("提案名称", 1, 2);  
        wordBean.putTxtToCell(1, 1, 1, "提案名称");
        wordBean.putTxtToCell(1, 1, 2, "sssss");
        wordBean.moveDown(1);
        wordBean.insertTable("提案名称", 10, 4);
        String[] a1= {"领衔委员","通讯地址及邮编","电话","手机"};
        for(int i=1;i<=10;i++)  //行
        { 
        	 for(int j=1;j<=4;j++)  //列
        	 {
        		 if(i==1)
             	 {
             		for(int k=1;k<=4;k++)
             		{
             			wordBean.putTxtToCell(2, 1, k, a1[k-1]);
             		}
             	 }
        		 else
        		 {
        			 wordBean.putTxtToCell(2, i, j, "ssss");
        		 }
        		 
        	 }
        }
//        wordBean.insertFormatTitle("中国人民政治协商会议第六届天河区委员会第六次会议委员提案、批评和意见");// 插入一个段落，对其中的字体进行了设置
//       boolean f = wordBean.find("A");
//        wordBean.replaceAll(selectDoc,"A", "六");
//        System.out.println(f);
//        wordBean.insertJpeg("D:" + File.separator + "a.jpg"); // 插入图片(注意刚打开的word   
//        // ，光标处于开头，故，图片在最前方插入)   
//        wordBean.save();   
//        wordBean.closeDocument();   
//        wordBean.closeWord();   
    }   
    public static void insertFormatStr(String str) {   
        WordBean wordBean = new WordBean();   
        wordBean.setVisible(true); // 是否前台打开word 程序，或者后台运行   
        wordBean.createNewDocument();// 创建一个新文档   
        wordBean.insertFormatStr(str);// 插入一个段落，对其中的字体进行了设置   
    }   
    public static void insertTableTest() {   
        WordBean wordBean = new WordBean();   
        wordBean.setVisible(true); // 是否前台打开word 程序，或者后台运行   
        wordBean.createNewDocument();// 创建一个新文档   
        wordBean.setLocation();   
        wordBean.insertTable("表名", 3, 2);   
        wordBean.saveFileAs("d:\\table.doc");   
        wordBean.closeDocument();   
        wordBean.closeWord();   
    }   
//    public static void mergeTableCellTest() {   
//        insertTableTest();//生成d:\\table.doc   
//        WordBean wordBean = new WordBean();   
//        wordBean.setVisible(true); // 是否前台打开word 程序，或者后台运行   
//        wordBean.openFile("d:\\table.doc");   
//        wordBean.mergeCellTest();   
//    }   
    
    public static void openDoc(String url)
    {
    	WordBean wordBean = new WordBean();   
        wordBean.setVisible(true); // 是否前台打开word 程序，或者后台运行   
        wordBean.openFile(url); 
    }
    
    public static void openDocument(String docPath) {

        closeDocument();

        doc = Dispatch.call(documents, "Open", docPath).toDispatch();

        selection = Dispatch.get(wordCom, "Selection").toDispatch();

    }
    
    public static void closeDocument() {

        if (doc != null) {

            Dispatch.call(doc, "Save");

            Dispatch.call(doc, "Close", new Variant(saveOnExit));

            doc = null;

        }

    }




    
    public static void main(String[] args) {   
        // 进行测试前要保证d:\\a.jpg 图片文件存在   
        // createANewFileTest();//创建一个新文件   
        // openAnExistsFileTest();// 打开一个存在 的文件   
//         insertFormatStr("格式 化字符串");//对字符串进行一定的修饰   
//        insertTableTest();// 创建一个表格   
//       mergeTableCellTest();// 对表格中的单元格进行合并   
    	String str=JacobTest2.class.getResource("JacobTest2.class").getPath(); 
		str=str.substring(1, str.indexOf("WEB-INF/classes"));//从路径字符串中取出工程路径
		String path = str.replaceAll("%", " ");
		System.out.println(path);
    }   
}  
